package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.PO.SipClusterPO;
import com.itlong.cloud.POJO.VO.operate.OperateSipClusterVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      运营-运营管理-SIP集群管理操作数据接口。
 * <desc/>
 *
 * @createDate 2017/9/30.
 */
@Mapper
@Repository
public interface IOperateSipClusterDao extends IAbstractBaseDao<OperateSipClusterVO> {


     /**
      * <desc>
      *      保存SIP服务器。
      * <desc/>
      *
      * @param params
      * @return 返回影响行数
      * @author shengen.T
      * @createDate 2017/9/30
      */
    Integer save(Map<String,Object> params);

     /**
      * <desc>
      *      修改SIP服务器。
      * <desc/>
      *
      * @param params
      * @return 返回影响行数
      * @author shengen.T
      * @createDate 2017/9/30
      */
    Integer update(Map<String,Object> params);

     /**
      * <desc>
      *      设置SIP服务器的启用/禁用。
      * <desc/>
      *
      * @param  sipId SIP服务器ID
      * @param  status 状态：启用/禁用
      * @return 返回影响行数
      * @author shengen.T
      * @createDate 2017/9/30
      */
    Integer setStatus(@Param("sipId") String sipId, @Param("status") Integer status);


     /**
      * <desc>
      *      获取SIP服务器信息。
      * <desc/>
      *
      * @param  sipId
      * @return  返回指定的sip服务器对象信息
      * @author shengen.T
      * @createDate 2017/9/30
      */
     OperateSipClusterVO getOne(String sipId);

     /**
      * <desc>
      *      获取SIP服务器分页信息。
      * <desc/>
      *
      * @param  params
      * @return
      * @author shengen.T
      * @createDate 2017/9/30
      */
    List<OperateSipClusterVO> getPage(Map<String,Object> params);

    /**
     * <desc>
     *      获取查询结果总记录数。
     * <desc/>
     *
     * @param params
     * @return
     * @author shengen.T
     * @createDate 2017/9/28
     */
    Integer getPageCount(Map<String,Object> params);

    /**
     * <desc>
     *      根据项目编号查询该项目使用的sipCluster
     * <desc/>
     * @param   projectId 项目编号
     * @return  SipClusterPO
     * @author Biao.R
     * @createDate 2017/10/25
     */
    SipClusterPO getSipDomainByProjectId(@Param("projectId") String projectId);
}
